package grafica.jugador.controladores;

import grafica.jugador.ventanas.Atacar;
import grafica.jugador.ventanas.PanelJugador;
import grafica.jugador.ventanas.Reagrupar;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import logica.excepciones.JugadoresException;
import logica.excepciones.PaisesException;
import logica.excepciones.PartidaException;
import logica.fachadas.IFabrica;
import logica.fachadas.IFachadaJugadores;
import persistencia.Config;
import persistencia.Persistencia;
import persistencia.PersistenciaException;

public class ControladorReagrupar {
	 private IFachadaJugadores fachadaJugadores;
	 private Reagrupar reagrupar; 
//	 private PanelJugador panelJugador;
	
//	public ControladorReagrupar(Reagrupar reagrupar, PanelJugador panelJugador){
	 public ControladorReagrupar(Reagrupar reagrupar){
		IFabrica fabrica = null;		
		this.reagrupar = reagrupar;		
//		this.panelJugador = panelJugador;
		try{
			Config conf = Config.getInstancia();
			String servidor = conf.getArchivoConf("Servidor");
			int puerto =  Integer.parseInt(conf.getArchivoConf("Puerto"));		
					fabrica = (IFabrica)Naming.lookup("//" + servidor +":" + puerto + "/fabrica");			
			fachadaJugadores = fabrica.getFachadaJugador();
		
		} catch (MalformedURLException e) {			
			this.reagrupar.setJLabelInfo(e.getMessage());
		} catch (NotBoundException e) {
			this.reagrupar.setJLabelInfo(e.getMessage());	
		} catch (RemoteException e) {
			this.reagrupar.setJLabelInfo(e.getMessage());
		} catch (PersistenciaException e) {			
			this.reagrupar.setJLabelInfo(e.getMessage());
		}	
	}
	
	
	public void ReagruparFicgas(String nomJugador,String nomPOrig,String nomPDest,int cantFichas){
		try {
			fachadaJugadores.reagruparFichas(nomJugador, nomPOrig, nomPDest, cantFichas);
			reagrupar.dispose();
		} catch (RemoteException e) {			
			reagrupar.setJLabelInfo(e.getMessage());
		} catch (PaisesException e) {		
			reagrupar.setJLabelInfo(e.darMensaje());
		} catch (PartidaException e) {		
			reagrupar.setJLabelInfo(e.darMensaje());
		} catch (JugadoresException e) {
			reagrupar.setJLabelInfo(e.darMensaje());
		}
	}
	
}
